package contract_request

import (
	"private-go-sdk/http"
	"encoding/json"
	"private-go-sdk/model/common"
)

type ContractResendRequest struct {
	// <ext>core:true;format:string</ext> 【电子签约文件id】电子签约文件id 【作用】 查询需要重新发起的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	Id *int64 `json:"id,omitempty"`
	// <ext>core:true</ext> 【第三方业务系统id】第三方业务系统id 【作用】 查询需要重新发起的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一，均传入以电子签约文件id为准。
	BizId string `json:"bizId,omitempty"`
	// <ext>core:true</ext> 【文件主题】文件主题 【作用】 电子签约文件的标题，如签署劳动合同时，可设置为“劳动合同-XX公司-张三” 【传参】 最大长度：500（包含）。 【特殊说明】 用印流程-高级配置中可设置文件主题生成规则，若设置按规则自动生成，则接口传入无效；若设置为发起人自定义，则接口传入的文件主题生效
	Subject string `json:"subject,omitempty"`
	// 【文件编号】文件编号 【作用】 电子签约文件的编号，方便对文件进行查询、归档等管理，如“QYS-20160101-000001” 【传参】 最大长度：500（包含）。 【特殊说明】 用印流程若设置按规则自动生成，则接口传入无效；若设置为发起人自定义，则接口传入的文件编号生效
	Sn string `json:"sn,omitempty"`
	// <ext>core:true;format:date</ext> 【文件定时发起时间】文件定时发起时间 【作用】 可以创建文件后保存草稿，在设定的时间由系统自动发起文件 【传参】 1、仅在send（是否发起电子签约）为false（保存为草稿）时生效。 2、日期格式：yyyy-MM-dd HH:mm
	SendTimeStr string `json:"sendTimeStr,omitempty"`
	// <ext>deprecated:true</ext> 【文件描述】文件描述 【作用】 用于对文件进行补充描述，不会在页面展示，仅在系统数据库中记录 【传参】 最大长度：1200（包含）。
	Description string `json:"description,omitempty"`
	// <ext>core:true</ext> 【是否发起电子签约】是否发起电子签约 【作用】 1、若立即发起，则接口调用成功后电子签约文件直接进入签署状态，签署人将按顺序进行签署（若签署前需要填参，则由对应的用户补全文件后内容后进入签署） 2、若保存为草稿，文件不会发起签署，后续若需继续修改签署信息可调用 编辑电子签约信息<docs>/contract/edit</docs>；后续若需发起时需调用 直接发起电子签约<docs>/contract/send</docs>发起电子签约 【传参】 取值范围：true（立即发起），false（保存为草稿）；不传值默认为：true（立即发起）。
	Send *bool `json:"send,omitempty"`
	ContractControl *common.OpenContractControlBean `json:"contractControl,omitempty"`
	// <ext>core:true</ext> 【签署文档id】签署文档id 【作用】 可自定义上传本地、图片、文件模板作为本次签署的文件，但因转换文档需要时间，如在本接口发起文件时同步转换文档会导致发起文件耗时较长，所以需提前调用创建文档相关接口转换为签署文档id后再通过此参数填写。创建文档接口如下： 1、<docs>/v2/document/createbyfile</docs> ：选择本地的文件转换为PDF格式的签署文档 2、<docs>/document/createbytemplate</docs> ：传入系统中已维护的文件模板id，将模板转换成PDF格式的签署文档 3、<docs>/document/createbytemplates</docs> ：传入系统中多个已维护的文件模板id，将模板转换为PDF格式的签署文档 4、<docs>/document/createbyfiles</docs> ：选择多个本地的文件，合并并转换为PDF格式的签署文档 5、<docs>/v2/document/createbyurl</docs> ：使用传入的url获取文件转换为PDF格式的签署文档，支持本地路径/网络路径或ftp存储路径的文件 6、<docs>/document/createbyofd</docs> ：选择本地的OFD文件创建签署文档，签署文档格式仍是OFD，主要适用于国产化场景 【特殊说明】 用印流程-文件设置中开启“发起签约时，允许新增文件”，则传入的签署文档与用印流程中配置的文件模板都作为电子签约文档；若未开启配置，则只能使用用印流程中配置的文件模板
	Documents []int64 `json:"documents,omitempty"`
	// <ext>core:true;format:date</ext> 【签署截止日期】签署截止日期 【作用】 若超过该日期，文件的所有签署方将不能进行文件签署，文件状态变为“已截止签署” 【传参】 1、日期格式：yyyy-MM-dd。 2、若传入2022-03-09，系统将在2022年3月9日的23时59分59秒后将文件标记为“已截止签署”。
	ExpireTime string `json:"expireTime,omitempty"`
	// <ext>core:true;format:date</ext> 【文件到期日期】文件到期日期 【作用】 文件履行期限的截止日期，若超过此日期后，文件将标记为“已到期” 【传参】 1、日期格式：yyyy-MM-dd。 2、传入日期必须晚于当前日期，，若传入2022-03-09，系统将在2022年3月9日的23时59分59秒将文件标记为“已到期”。
	EndTime string `json:"endTime,omitempty"`
	// <ext>core:true</ext> 【发起人姓名】发起人姓名 【作用】 当传入的发起人未在系统中时，将使用该姓名作为发起人账号的姓名。如发起人已存在，则传入的姓名无效 【传参】 最大长度：500字符（包含）。
	CreatorName string `json:"creatorName,omitempty"`
	// <ext>core:true</ext> 【发起人联系方式】发起人联系方式 【作用】 可传入手机号、邮箱查询并记录该电子签约文件的发起人 【传参】 1、可传入用户手机号或者邮箱。 2、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 3、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 4、联系方式和成员编号仅需传入一项，均传入时以联系方式为准 5、使用联系方式或成员编号查询用户且用户不存在时，将使用对应的参数值和发起人姓名创建新用户，并会加入发起主体组织内部。
	CreatorContact string `json:"creatorContact,omitempty"`
	// <ext>core:true</ext> 【发起人员工编号】发起人员工编号 【作用】 可传入成员编号查询并记录该电子签约文件的发起人 【传参】 1、联系方式和成员编号仅需传入一项，均传入时以联系方式为准 2、使用联系方式或成员编号查询用户且用户不存在时，将使用对应的参数值和发起人姓名创建新用户，并会加入发起主体组织内部。
	CreatorNumber string `json:"creatorNumber,omitempty"`
	// <ext>core:true</ext> 【发起主体名称】发起主体名称 【作用】 即电子签约文件的发起单位，仅能传入用印流程设置的发起主体范围 【传参】 最大长度：500（包含）。
	TenantName string `json:"tenantName"`
	// <ext>core:true</ext> 【拟定方】拟定方 【作用】 即需拟定文件的组织和个人（如文件正式发起拟定前需与各签约方共同补全文件参数内容并完成内部审批）。 内部组织拟定方下可设置拟定节点（个人拟定、个人审批），其余拟定方仅支持个人拟定 【特殊说明】 拟定方须提前在用印流程预设好，接口暂不支持自定义拟定方。仅支持接口通过传入拟定方、拟定节点类型和顺序匹配流程预设的审批节点，为审批节点指定审批人
	FillSignatories []*common.FillSignatory `json:"fillSignatories,omitempty"`
	// <ext>core:true</ext> 【签署方】签署方 【作用】 即需签署的组织和个人，组织签署方下可设置签署节点（签字、审批、签章、执业章签署等），个人签署方仅支持个人签字 【特殊说明】 签署方为空时，需在签署完成后调用 封存文件/contract/finish 完成电子签约，否则文件一直会处于签署状态不会结束
	Signatories []*common.Signatory `json:"signatories,omitempty"`
	// <ext>core:true</ext> 【模板参数】模板参数 【作用】 1、签署文件中包含待填写的参数时，支持传入参数的值补全文件内容 2、支持传入所有签署方的待填参数，用户进行拟定时可查看接口传入的默认值，但可改
	DocumentParams []*common.SimpleDocumentParam `json:"documentParams,omitempty"`
	// 【业务数据】业务数据 【作用】 可传入业务系统中需要记录的数据，比如相关审批意见、电子签约文件的说明，不会在页面展示，但支持回调给业务系统 【传参】 最大长度：4000（包含）。
	BusinessData string `json:"businessData,omitempty"`
	// 【文件水印】文件水印 【作用】 可在电子签约文件上添加水印，允许传入多组水印 【特殊说明】 1、当用印流程中已预设文字/图片水印，并勾选通过接口传入内容，则传入水印配置时，将按传入顺序优先匹配已预设的水印，传入的参数中只有文字水印内容（content）/水印图片(imageBase64)传值生效，样式以用印流程预设的为准。其余传入的水印，以接口传入的内容生成新水印 2、当用印流程中未预设文字/图片水印通过接口传入内容，则以接口传入的内容生成新水印 3、若用印流程绑定的文件或发起时新增的文件已添加数字签名，因添加文件水印会篡改文件导致数字签名失效，故文件水印不会生效
	WaterMarkConfigs []*common.WaterMarkContent `json:"waterMarkConfigs,omitempty"`
	// 【印章水印】印章水印 【作用】 可在印章外观上添加水印，防止签署文件上的印章被抠章后二次使用，允许传入多组水印 【特殊说明】 1、当用印流程中已预设文字水印并勾选通过接口传入内容，则传入的文字水印配置，将按传入顺序优先匹配已预设的水印，传入的参数中只有文字水印内容（content）传值生效，样式以用印流程预设的为准。其余传入的水印，以接口传入的内容生成新水印 2、当用印流程中未预设文字水印通过接口传入内容，或接口传入的印章类型、用印时间类型的水印时，以接口传入的内容生成新水印
	SealWaterMarkContents []*common.StampWaterMarkContent `json:"sealWaterMarkContents,omitempty"`
	// 【指定位置外可签署】指定位置外可签署 【传参】 取值范围：true（可签署），false（不可签署）；不传值默认为：用印流程配置。
	ExtraSign *bool `json:"extraSign,omitempty"`
	// 【指定位置必须签署】指定位置必须签署 【传参】 取值范围：true（必须签署），false（不必须签署）；不传值默认为：用印流程配置。
	MustSign *bool `json:"mustSign,omitempty"`
	// 【是否所有文档均需签署】是否所有文档均需签署  【传参】 取值范围：DEFAULT（无需签署所有文档），ALL（所有签署方每个签署节点必须签署所有文档），SENDER（发起方每个签署节点必须签署所有文档），RECEIVER（接收方每个节点必须签署所有文档）；不传值默认为：DEFAULT（无需签署所有文档）。
	SignAll string `json:"signAll,omitempty"`
	// <ext>core:true</ext> 【自定义字段 】自定义字段  【作用】 1、除文件主题、文件编号等基础信息，不同类型的文件发起时需要填写的字段信息是不同的，例如发起采购合同可填写金额，发起人事合同可填写员工岗位 2、自定义字段可在电子签章管理后台统一定义或在用印流程中根据业务定义，定义好后可通过该参数传入字段值
	CustomizeFields []*common.CustomizeFiled `json:"customizeFields,omitempty"`
	// 【是否允许用户作废已签署完成文件】是否允许用户作废已签署完成文件 【传参】 取值范围：true（可发起作废），false（当前文件不可发起作废）；不传值默认为：后台配置。
	AllowCancel *bool `json:"allowCancel,omitempty"`
	// 【公共标签】公共标签 【作用】 可传入电子签约文件的标签对文件进行分类、筛选等管理，公共标签仅发起方内部成员可见、可编辑 【传参】 支持传入多个，传参方式为:[\"公共标签1\",\"公共标签2\"]。
	ContractPublicTag []string `json:"contractPublicTag,omitempty"`
	// 【文档脱敏设置】文档脱敏设置  【作用】 1、常用于公文，需要将红头文件以及加盖的印章转成黑白，可在此处提前设置需转换的格式，文档签署完成后会转换为指定格式，并长期存储，通过2.17.2 下载签署任务文档（/document/download)下载转化后的文档 2、支持转换的类型包括： PDF黑白黑章文件：文件为黑白，去除已签署的数字签名，保留已签署的印章/签名/日期/批注但转为黑白图片，转化为PDF格式 OFD黑白黑章文件：文件为黑白，去除已签署的数字签名，保留已签署的印章/签名/日期/批注但转为黑白图片，转化为OFD格式 【传参】 取值范围：PDF_BLACK_SEAL（PDF黑白黑章文件），OFD_BLACK_SEAL（OFD黑白黑章文件）；可选多项；不传值默认为：不进行转换。
	DocumentFormats []string `json:"documentFormats,omitempty"`
}
func (obj ContractResendRequest) GetUrl() string {
    return "/contract/resend"
}

func (obj ContractResendRequest) GetHttpParameter() *http.HttpParameter {
    parameter := http.NewPostHttpParameter()
    jsonBytes, _ := json.Marshal(obj)
    parameter.SetJsonParamer(string(jsonBytes))
    return parameter
}
